Skip to content

feat(seo): add qualified users sitemap#3761

Merged
idoshamun merged 2 commits intomainfrom
eng-1184-seo-p1-add-usersxml-sitemap-for-qualified-profiles
Mar 31, 2026
Merged

feat(seo): add qualified users sitemap#3761
idoshamun merged 2 commits intomainfrom
eng-1184-seo-p1-add-usersxml-sitemap-for-qualified-profiles

Conversation

@idoshamun
Copy link
Copy Markdown
Member

Summary

  • add /api/sitemaps/users.xml for qualified author profiles and include it in the sitemap index
  • filter profiles to users with reputation above 10, a non-empty bio, a username, and at least one public authored post
  • add integration coverage for sitemap index inclusion and qualified/unqualified profile cases

Key decisions

  • reuse the existing canonical profile URL helper for sitemap entries
  • keep the users sitemap non-paginated and avoid SITEMAP_LIMIT truncation by using the standard sitemap cap
  • treat whitespace-only bios as empty to keep thin profiles out of the sitemap

Closes ENG-1184


Created by Huginn 🐦‍⬛

@pulumi
Copy link
Copy Markdown

pulumi Bot commented Mar 31, 2026

🍹 The Update (preview) for dailydotdev/api/prod (at ce9f143) was successful.

✨ Neo Explanation

This is a routine application release rolling out a new container image to all API services and scheduled jobs, with accompanying database migration jobs replacing their previous-version counterparts. No infrastructure or stateful resources are affected.

Root Cause Analysis

A new application version has been built and is being deployed across the entire API platform. Every workload is being updated to point to the new container image, with both database migration jobs (Postgres via TypeORM and ClickHouse) being replaced with new versions tied to the incoming release.

Dependency Chain

The new container image tag cascades uniformly to all 7 long-running Deployments (API, background worker, WebSocket, private, temporal, worker-job, personalized digest) and all 38 CronJobs. In parallel, the two one-shot migration Jobs from the previous release are deleted and replaced with new Jobs that will run against the new image before (or alongside) the Deployment rollouts.

Risk analysis

No stateful resources (databases, storage, persistent volumes) are being replaced or deleted. The migration Jobs are the only meaningful risk surface — if either the Postgres or ClickHouse migration fails, the new application pods could start against a mismatched schema. The Deployments themselves perform rolling updates, so there is no forced downtime. The GCP credentials warning is cosmetic and does not block the Kubernetes changes.

Resource Changes

    Name                                                       Type                           Operation
~   vpc-native-clean-zombie-opportunities-cron                 kubernetes:batch/v1:CronJob    update
~   vpc-native-rotate-daily-quests-cron                        kubernetes:batch/v1:CronJob    update
~   vpc-native-user-profile-analytics-clickhouse-cron          kubernetes:batch/v1:CronJob    update
~   vpc-native-user-profile-updated-sync-cron                  kubernetes:batch/v1:CronJob    update
~   vpc-native-ws-deployment                                   kubernetes:apps/v1:Deployment  update
~   vpc-native-update-source-public-threshold-cron             kubernetes:batch/v1:CronJob    update
~   vpc-native-post-analytics-history-day-clickhouse-cron      kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-stale-user-transactions-cron              kubernetes:batch/v1:CronJob    update
~   vpc-native-check-analytics-report-cron                     kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-zombie-users-cron                         kubernetes:batch/v1:CronJob    update
~   vpc-native-update-current-streak-cron                      kubernetes:batch/v1:CronJob    update
~   vpc-native-channel-digests-cron                            kubernetes:batch/v1:CronJob    update
~   vpc-native-update-views-cron                               kubernetes:batch/v1:CronJob    update
+   vpc-native-api-clickhouse-migration-6498f742               kubernetes:batch/v1:Job        create
~   vpc-native-validate-active-users-cron                      kubernetes:batch/v1:CronJob    update
-   vpc-native-api-db-migration-f58a9977                       kubernetes:batch/v1:Job        delete
~   vpc-native-clean-zombie-images-cron                        kubernetes:batch/v1:CronJob    update
~   vpc-native-post-analytics-clickhouse-cron                  kubernetes:batch/v1:CronJob    update
~   vpc-native-calculate-top-readers-cron                      kubernetes:batch/v1:CronJob    update
~   vpc-native-personalized-digest-deployment                  kubernetes:apps/v1:Deployment  update
~   vpc-native-user-profile-analytics-history-clickhouse-cron  kubernetes:batch/v1:CronJob    update
~   vpc-native-update-source-tag-view-cron                     kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-gifted-plus-cron                          kubernetes:batch/v1:CronJob    update
~   vpc-native-update-tags-str-cron                            kubernetes:batch/v1:CronJob    update
+   vpc-native-api-db-migration-6498f742                       kubernetes:batch/v1:Job        create
~   vpc-native-worker-job-deployment                           kubernetes:apps/v1:Deployment  update
~   vpc-native-temporal-deployment                             kubernetes:apps/v1:Deployment  update
~   vpc-native-personalized-digest-cron                        kubernetes:batch/v1:CronJob    update
~   vpc-native-update-achievement-rarity-cron                  kubernetes:batch/v1:CronJob    update
-   vpc-native-api-clickhouse-migration-f58a9977               kubernetes:batch/v1:Job        delete
~   vpc-native-expire-super-agent-trial-cron                   kubernetes:batch/v1:CronJob    update
~   vpc-native-rotate-weekly-quests-cron                       kubernetes:batch/v1:CronJob    update
~   vpc-native-generate-search-invites-cron                    kubernetes:batch/v1:CronJob    update
~   vpc-native-squad-posts-analytics-refresh-cron              kubernetes:batch/v1:CronJob    update
~   vpc-native-deployment                                      kubernetes:apps/v1:Deployment  update
~   vpc-native-user-posts-analytics-refresh-cron               kubernetes:batch/v1:CronJob    update
~   vpc-native-clean-channel-highlights-cron                   kubernetes:batch/v1:CronJob    update
~   vpc-native-daily-digest-cron                               kubernetes:batch/v1:CronJob    update
~   vpc-native-update-trending-cron                            kubernetes:batch/v1:CronJob    update
~   vpc-native-bg-deployment                                   kubernetes:apps/v1:Deployment  update
~   vpc-native-update-highlighted-views-cron                   kubernetes:batch/v1:CronJob    update
... and 10 other changes

@idoshamun idoshamun merged commit 062e1cf into main Mar 31, 2026
9 checks passed
@idoshamun idoshamun deleted the eng-1184-seo-p1-add-usersxml-sitemap-for-qualified-profiles branch March 31, 2026 11:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant